home *** CD-ROM | disk | FTP | other *** search
/ PC for Alla 2005 May / PC för Alla 0505.iso / fullversioner / realsoft3d / data1.cab / Scripting / scripts / js / real / objects / r3nurbs.js < prev    next >
Encoding:
JavaScript  |  2005-04-04  |  18.2 KB  |  618 lines

  1.  
  2. // JavaScript wrapper for r3nurbs.h
  3. // Auto generated file, do not modify by hand
  4. // Copyright ⌐ 2004, Realsoft Graphics Oy
  5.  
  6. var R3_NURBS_H = 1;
  7. include("real/objects/r3prim.js")
  8. include("oops/r3vector.js")
  9. include("real/3d/r3nulib.js")
  10.  
  11.  
  12. var R3CLID_NURBS = 130;
  13.  
  14.  
  15.  
  16.  
  17. // Description: Concatenates given curves to itself. If the 'p1' is TRUE, fixed order concatenation is
  18. //      applied. if 'p1' is false, the order is is determined from the distances between the
  19. //      end points of the curves. Note: this method ignores all 'closed' curves.
  20. // Returns: Boolean, TRUE if concatenation succeeded.
  21. // p1: Boolean, TRUE to autoconcatenate, FALSE to fixed order
  22. // p3: Object[], null terminated array of objects to be concatenated
  23.  
  24. R3NUM_CONCATENATE = 130000;
  25.  
  26. function mR3NUM_CONCATENATE(p1, p3) {
  27.   return   DoA2(this.r3obj, 130000, p1, R3TID_BOOLEAN, 0, p3, R3TID_OBJECT, R3TNF_ARRAY);
  28. }
  29.  
  30. // Description: Make the curve 'sharp' at given parameter value by increasing the multiplicity of the
  31. //      given knot value. The shape of the curve remains unchanged.
  32.  
  33. R3NUM_SHARPEN = 130001;
  34.  
  35. function mR3NUM_SHARPEN() {
  36.   DoA(this.r3obj, 130001, 0, R3TID_INTEGER, 0);
  37. }
  38.  
  39. // Description: Break the curve selected point(s).
  40.  
  41. R3NUM_BREAK = 130002;
  42.  
  43. function mR3NUM_BREAK() {
  44.   DoA(this.r3obj, 130002, 0, R3TID_INTEGER, 0);
  45. }
  46.  
  47. // Description: Insert new knot to a curve. The shape of the curve is not changed.
  48. // Returns: Boolean, true if knot was succesfully inserted. FALSE if failed.
  49. // p1: Boolean, if true, parameter value 'p3' is local, if FALSE, 'p3' is global
  50. // p3: Number, parameter value
  51.  
  52. R3NUM_INSERTKNOT = 130003;
  53.  
  54. function mR3NUM_INSERTKNOT(p1, p3) {
  55.   return   DoA2(this.r3obj, 130003, p1, R3TID_BOOLEAN, 0, p3, R3TID_FLOAT, 0);
  56. }
  57.  
  58. // Description: Convert the nurbs to bezier curve without changing the shape.
  59.  
  60. R3NUM_TOBEZIER = 130004;
  61.  
  62. function mR3NUM_TOBEZIER() {
  63.   DoA(this.r3obj, 130004, 0, R3TID_INTEGER, 0);
  64. }
  65.  
  66. // Description: Elevate the degree of the curve. The shape of the curve remains unchanged.
  67. // Returns: Boolean, true if succeeded.
  68.  
  69. R3NUM_ELEVATEDEGREE = 130005;
  70.  
  71. function mR3NUM_ELEVATEDEGREE() {
  72.   return   DoA(this.r3obj, 130005, 0, R3TID_INTEGER, 0);
  73. }
  74.  
  75. // Description: Cut off the head of the curve at the given parameter value.
  76. // Returns: Boolean, true if succeeded.
  77.  
  78. R3NUM_CUTHEAD = 130006;
  79.  
  80. function mR3NUM_CUTHEAD() {
  81.   return   DoA(this.r3obj, 130006, 0, R3TID_INTEGER, 0);
  82. }
  83.  
  84. // Description: Cut off the tail of the curve at the given parameter value.
  85. // Returns: Boolean, true if succeeded.
  86.  
  87. R3NUM_CUTTAIL = 130007;
  88.  
  89. function mR3NUM_CUTTAIL() {
  90.   return   DoA(this.r3obj, 130007, 0, R3TID_INTEGER, 0);
  91. }
  92.  
  93. // Description: Changes the direction of the curve.
  94. // Returns: Boolean, true if succeeded
  95.  
  96. R3NUM_SWAPDIRECTION = 130008;
  97.  
  98. function mR3NUM_SWAPDIRECTION() {
  99.   return   DoA(this.r3obj, 130008, 0, R3TID_INTEGER, 0);
  100. }
  101.  
  102. // Description: Tranlate the weights of the selected control points.
  103. // p1: Boolean, if true, p3 translates the current weight. Otherwise p3 is taken as new absolute
  104. //      weight for the selected points.
  105. // p3: Number, abs/rel weight    
  106.  
  107. R3NUM_CHANGEWEIGHTS = 130009;
  108.  
  109. function mR3NUM_CHANGEWEIGHTS(p1, p3) {
  110.   DoA2(this.r3obj, 130009, p1, R3TID_BOOLEAN, 0, p3, R3TID_FLOAT, 0);
  111. }
  112.  
  113. // Description: Raise/drop the order of the curve. The shape of the curve doesn't remain the
  114. //      same.
  115. // Returns: Boolean, true of succeeded. FALSE if the curve order cannot be changed
  116. // p3: Integer, defines how much the curve order is increased/decreased. Positive values increase the order. Negative
  117. //      decrease.    
  118.  
  119. R3NUM_CHANGEORDER = 130010;
  120.  
  121. function mR3NUM_CHANGEORDER(p3) {
  122.   return   DoA(this.r3obj, 130010, p3, R3TID_INTEGER, 0);
  123. }
  124.  
  125. // Description: Inserts knots in the given array.
  126. // Returns: Boolean, true if succeeded.
  127. // p1: Integer, number of knots
  128. // p3: Number, knots to be inserted.    
  129.  
  130. R3NUM_INSERTKNOTARRAY = 130011;
  131.  
  132. function mR3NUM_INSERTKNOTARRAY(p1, p3) {
  133.   return   DoA2(this.r3obj, 130011, p1, R3TID_INTEGER, 0, p3, R3TID_FLOAT, 0);
  134. }
  135.  
  136. // Description: Add two extra points to the curve (if curve is open) and run inversion
  137. //      so that the curve passes through its all original control points.
  138.  
  139. R3NUM_INTERPOLATE = 130012;
  140.  
  141. function mR3NUM_INTERPOLATE() {
  142.   DoA(this.r3obj, 130012, 0, R3TID_INTEGER, 0);
  143. }
  144.  
  145. // Description: Make the order, knot sequence and point count of the give nurbs curves the
  146. //      same. The operation doesn't change the shape of the curves. If all curves are closed,
  147. //      resulting curve is closed, if one of the curves is open, all resulting curves are
  148. //      opened.
  149. // Returns: Boolean, true if succeeded
  150. // p3: Object[], null terminated array of curves    
  151.  
  152. R3NUCM_UNIFY = 130013;
  153.  
  154. function mR3NUCM_UNIFY(p3) {
  155.   return   DoA(this.r3obj, 130013, p3, R3TID_OBJECT, R3TNF_ARRAY);
  156. }
  157.  
  158. // Description: Open the given closed curve. The shape of the curve is not changed.
  159. // Returns: Boolean, True if curve was succesfully opened.
  160. // p3: Boolean, if true, resulting curve ends have multiplicity    
  161.  
  162. R3NUM_OPEN = 130014;
  163.  
  164. function mR3NUM_OPEN(p3) {
  165.   return   DoA(this.r3obj, 130014, p3, R3TID_BOOLEAN, 0);
  166. }
  167.  
  168. // Description: Set start point (u = 0) for closed curve (translate parameter space 'p3' ->
  169. //      0.0). The shape of the curve is not changed.
  170. // Returns: Boolean, true if succeeded.
  171.  
  172. R3NUM_SETSTART = 130015;
  173.  
  174. function mR3NUM_SETSTART() {
  175.   return   DoA(this.r3obj, 130015, 0, R3TID_INTEGER, 0);
  176. }
  177.  
  178. // Description: Create parallel curve
  179. // Returns: Object, parallel curve
  180. // p1: r3Vect, normal
  181. // p3: Number, displacement. Positive value creates bigger parallel curve, negative shrunk curve.    
  182.  
  183. R3NUM_PARALLELCURVE = 130016;
  184.  
  185. function mR3NUM_PARALLELCURVE(p1, p3) {
  186.   return R3ToJS(  DoA2(this.r3obj, 130016, p1, R3TID_VECTOR, 0, p3, R3TID_FLOAT, 0));
  187. }
  188.  
  189. // Description: Prepare curve for shrink operation.
  190. // Returns: Boolean, true if succeeded
  191. // p2: r3Vect, normal
  192. // p3: r3List, list for prepared curves    
  193.  
  194. R3NUM_ADDTOSHRINK = 130017;
  195.  
  196. function mR3NUM_ADDTOSHRINK(p2, p3) {
  197.   return   DoA3(this.r3obj, 130017, 0, R3TID_INTEGER, 0, p2, R3TID_VECTOR, 0, p3, R3TID_LIST, 0);
  198. }
  199.  
  200. // Description: Class message: Prepare all curves for shrink operation
  201. // Returns: Boolean, true if succeeded
  202. // p1: r3List, curves to be shrunk
  203. // p3: Boolean, bevel out    
  204.  
  205. R3NUCM_PREPARESHRINK = 130018;
  206.  
  207. function mR3NUCM_PREPARESHRINK(p1, p3) {
  208.   return   DoA2(this.r3obj, 130018, p1, R3TID_LIST, 0, p3, R3TID_BOOLEAN, 0);
  209. }
  210.  
  211. // Description: Class message: Shrink curves
  212. // Returns: Boolean, true if succeeded
  213. // p1: r3List, curves to be shrunk
  214. // p3: Number, radius    
  215.  
  216. R3NUCM_SHRINK = 130019;
  217.  
  218. function mR3NUCM_SHRINK(p1, p3) {
  219.   return   DoA2(this.r3obj, 130019, p1, R3TID_LIST, 0, p3, R3TID_FLOAT, 0);
  220. }
  221.  
  222. // Description: Free shrunk curves
  223. // p3: r3List, curve node list    
  224.  
  225. R3NUCM_FREESHRINK = 130020;
  226.  
  227. function mR3NUCM_FREESHRINK(p3) {
  228.   DoA(this.r3obj, 130020, p3, R3TID_LIST, 0);
  229. }
  230.  
  231. // Description: Insert control point to a curve
  232. // Returns: Boolean, true if succeeded
  233. // p1: Integer, index of the new point
  234. // p3: r3Vect4, value for the new point    
  235.  
  236. R3NUM_INSERTCTRLPOINT = 130021;
  237.  
  238. function mR3NUM_INSERTCTRLPOINT(p1, p3) {
  239.   return   DoA2(this.r3obj, 130021, p1, R3TID_INTEGER, 0, p3, R3TID_VECTOR4, 0);
  240. }
  241.  
  242. // Description: Set control point
  243. // Returns: Boolean, true if succeeded
  244. // p1: Integer, index of the point to be set
  245. // p3: r3Vect, new value for the point    
  246.  
  247. R3NUM_SETPOINT4 = 130023;
  248.  
  249. function mR3NUM_SETPOINT4(p1, p3) {
  250.   return   DoA2(this.r3obj, 130023, p1, R3TID_INTEGER, 0, p3, R3TID_VECTOR, 0);
  251. }
  252.  
  253. // Description: Fetch control point
  254. // Returns: Boolean, true if succeeded
  255. // p1: r3Vect, value for the point
  256. // p3: Integer, index of the point to be fetched    
  257.  
  258. R3NUM_GETPOINT4 = 130024;
  259.  
  260. function mR3NUM_GETPOINT4(p1, p3) {
  261.   return   DoA2(this.r3obj, 130024, p1, R3TID_VECTOR, 0, p3, R3TID_INTEGER, 0);
  262. }
  263.  
  264. // Description: Set knot value by index
  265. // Returns: Boolean, true if succeeded
  266. // p1: Integer, index of the point to be fetched
  267. // p3: Number, buffer    
  268.  
  269. R3NUM_SETKNOT = 130025;
  270.  
  271. function mR3NUM_SETKNOT(p1, p3) {
  272.   return   DoA2(this.r3obj, 130025, p1, R3TID_INTEGER, 0, p3, R3TID_FLOAT, 0);
  273. }
  274.  
  275. // Description: Fetch knot value by index
  276. // Returns: Boolean, true if succeeded
  277. // p1: Number, knot value
  278. // p3: Integer, index    
  279.  
  280. R3NUM_GETKNOT = 130026;
  281.  
  282. function mR3NUM_GETKNOT(p1, p3) {
  283.   return   DoA2(this.r3obj, 130026, p1, R3TID_FLOAT, 0, p3, R3TID_INTEGER, 0);
  284. }
  285.  
  286. // Description: Low level set point method. The point is given in object space.    * The method
  287. //      doesn't generate R3MM_CHANGED nor call R3TTM_CHANGENIMATEDTAG.
  288. // Returns: Boolean, true if succeeded
  289. // p1: Integer, index
  290. // p3: r3Vect4, point    
  291.  
  292. R3NUM_SETPOINTLOCAL = 130027;
  293.  
  294. function mR3NUM_SETPOINTLOCAL(p1, p3) {
  295.   return   DoA2(this.r3obj, 130027, p1, R3TID_INTEGER, 0, p3, R3TID_VECTOR4, 0);
  296. }
  297.  
  298. // Description: Get point in object space
  299. // Returns: Boolean, true if succeeded
  300. // p1: Integer, index
  301. // p3: r3Vect4, point    
  302.  
  303. R3NUM_GETPOINTLOCAL = 130028;
  304.  
  305. function mR3NUM_GETPOINTLOCAL(p1, p3) {
  306.   return   DoA2(this.r3obj, 130028, p1, R3TID_INTEGER, 0, p3, R3TID_VECTOR4, 0);
  307. }
  308.  
  309. // Description: Class message: Test if R3CURVENODE *p1 is inside R3CURVENODE *p3. R3NUCM_PREPARESHRINK must be called
  310. //      prior this operation.
  311. // Returns: Boolean, true if is inside
  312.  
  313. R3NUCM_SHRINKISINSIDE = 130029;
  314.  
  315. function mR3NUCM_SHRINKISINSIDE() {
  316.   return   DoA(this.r3obj, 130029, 0, R3TID_INTEGER, 0);
  317. }
  318.  
  319. // Description: measure lenght of curve
  320. // p3: Number, address of result value    
  321.  
  322. R3NUM_MEASURELENGTH = 130030;
  323.  
  324. function mR3NUM_MEASURELENGTH(p3) {
  325.   DoA(this.r3obj, 130030, p3, R3TID_FLOAT, 0);
  326. }
  327.  
  328. // Description: Adjust points so that each curve segment is equally long. The operation sets parametrization
  329. //      to uniform and usually changes curve shape slightly.
  330.  
  331. R3NUM_DISTRIBUTEEVENLY = 130031;
  332.  
  333. function mR3NUM_DISTRIBUTEEVENLY() {
  334.   DoA(this.r3obj, 130031, 0, R3TID_INTEGER, 0);
  335. }
  336.  
  337.  
  338.  
  339.  
  340. R3NUA_Count = 130500;
  341. function SetR3NUA_Count(value) {
  342.   R3Set(this.r3obj, R3NUA_Count, value, R3TID_INTEGER, 0); 
  343. }
  344.  
  345. function GetR3NUA_Count() {
  346.   return R3Get(this.r3obj, R3NUA_Count, R3TID_INTEGER, 0); 
  347. }
  348.  
  349. R3NUA_Order = 130501;
  350. function SetR3NUA_Order(value) {
  351.   R3Set(this.r3obj, R3NUA_Order, value, R3TID_INTEGER, 0); 
  352. }
  353.  
  354. function GetR3NUA_Order() {
  355.   return R3Get(this.r3obj, R3NUA_Order, R3TID_INTEGER, 0); 
  356. }
  357.  
  358. R3NUA_Knots = 130502;
  359. function SetR3NUA_Knots(value) {
  360.   R3Set(this.r3obj, R3NUA_Knots, value, R3TID_FLOAT, R3TNF_ARRAY); 
  361. }
  362.  
  363. function GetR3NUA_Knots() {
  364.   return R3Get(this.r3obj, R3NUA_Knots, R3TID_FLOAT, R3TNF_ARRAY); 
  365. }
  366.  
  367. R3NUA_Points = 130503;
  368. function SetR3NUA_Points(value) {
  369.   R3Set(this.r3obj, R3NUA_Points, value, R3TID_OBJECT, 0); 
  370. }
  371.  
  372. function GetR3NUA_Points() {
  373.   return R3ToJS(R3Get(this.r3obj, R3NUA_Points, R3TID_OBJECT, 0)); 
  374. }
  375.  
  376. R3NUA_KnotCount = 130504;
  377. function GetR3NUA_KnotCount() {
  378.   return R3Get(this.r3obj, R3NUA_KnotCount, R3TID_INTEGER, 0); 
  379. }
  380.  
  381. R3NUA_Points3 = 130505;
  382. function SetR3NUA_Points3(value) {
  383.   R3Set(this.r3obj, R3NUA_Points3, value, R3TID_VECTOR, R3TNF_ARRAY); 
  384. }
  385.  
  386. function GetR3NUA_Points3() {
  387.   return R3Get(this.r3obj, R3NUA_Points3, R3TID_VECTOR, R3TNF_ARRAY); 
  388. }
  389.  
  390. R3NUA_Closed = 130506;
  391. function SetR3NUA_Closed(value) {
  392.   R3Set(this.r3obj, R3NUA_Closed, value, R3TID_INTEGER, 0); 
  393. }
  394.  
  395. function GetR3NUA_Closed() {
  396.   return R3Get(this.r3obj, R3NUA_Closed, R3TID_INTEGER, 0); 
  397. }
  398.  
  399. R3NUA_InParentsParamSpace = 130507;
  400. function SetR3NUA_InParentsParamSpace(value) {
  401.   R3Set(this.r3obj, R3NUA_InParentsParamSpace, value, R3TID_INTEGER, 0); 
  402. }
  403.  
  404. function GetR3NUA_InParentsParamSpace() {
  405.   return R3Get(this.r3obj, R3NUA_InParentsParamSpace, R3TID_INTEGER, 0); 
  406. }
  407.  
  408. R3NUA_DefaultTool = 130509;
  409. function SetR3NUA_DefaultTool(value) {
  410.   R3Set(this.r3obj, R3NUA_DefaultTool, value, R3TID_INTEGER, 0); 
  411. }
  412.  
  413. function GetR3NUA_DefaultTool() {
  414.   return R3Get(this.r3obj, R3NUA_DefaultTool, R3TID_INTEGER, 0); 
  415. }
  416.  
  417. R3NUA_Parametrization = 130510;
  418. function SetR3NUA_Parametrization(value) {
  419.   R3Set(this.r3obj, R3NUA_Parametrization, value, R3TID_INTEGER, 0); 
  420. }
  421.  
  422. function GetR3NUA_Parametrization() {
  423.   return R3Get(this.r3obj, R3NUA_Parametrization, R3TID_INTEGER, 0); 
  424. }
  425.  
  426. R3NUA_Diameter1 = 130511;
  427. function SetR3NUA_Diameter1(value) {
  428.   R3Set(this.r3obj, R3NUA_Diameter1, value, R3TID_FLOAT, 0); 
  429. }
  430.  
  431. function GetR3NUA_Diameter1() {
  432.   return R3Get(this.r3obj, R3NUA_Diameter1, R3TID_FLOAT, 0); 
  433. }
  434.  
  435. R3NUA_Diameter2 = 130512;
  436. function SetR3NUA_Diameter2(value) {
  437.   R3Set(this.r3obj, R3NUA_Diameter2, value, R3TID_FLOAT, 0); 
  438. }
  439.  
  440. function GetR3NUA_Diameter2() {
  441.   return R3Get(this.r3obj, R3NUA_Diameter2, R3TID_FLOAT, 0); 
  442. }
  443.  
  444. R3NUA_Ends = 130513;
  445. function SetR3NUA_Ends(value) {
  446.   R3Set(this.r3obj, R3NUA_Ends, value, R3TID_INTEGER, 0); 
  447. }
  448.  
  449. function GetR3NUA_Ends() {
  450.   return R3Get(this.r3obj, R3NUA_Ends, R3TID_INTEGER, 0); 
  451. }
  452.  
  453. R3NUA_ScanLineQuality = 130514;
  454. function SetR3NUA_ScanLineQuality(value) {
  455.   R3Set(this.r3obj, R3NUA_ScanLineQuality, value, R3TID_INTEGER, 0); 
  456. }
  457.  
  458. function GetR3NUA_ScanLineQuality() {
  459.   return R3Get(this.r3obj, R3NUA_ScanLineQuality, R3TID_INTEGER, 0); 
  460. }
  461.  
  462. R3NUA_Min = 130515;
  463. function SetR3NUA_Min(value) {
  464.   R3Set(this.r3obj, R3NUA_Min, value, R3TID_FLOAT, 0); 
  465. }
  466.  
  467. function GetR3NUA_Min() {
  468.   return R3Get(this.r3obj, R3NUA_Min, R3TID_FLOAT, 0); 
  469. }
  470.  
  471. R3NUA_Max = 130516;
  472. function SetR3NUA_Max(value) {
  473.   R3Set(this.r3obj, R3NUA_Max, value, R3TID_FLOAT, 0); 
  474. }
  475.  
  476. function GetR3NUA_Max() {
  477.   return R3Get(this.r3obj, R3NUA_Max, R3TID_FLOAT, 0); 
  478. }
  479.  
  480. R3NUA_DiameterChannel = 130517;
  481. function SetR3NUA_DiameterChannel(value) {
  482.   R3Set(this.r3obj, R3NUA_DiameterChannel, value, R3TID_STRING, 0); 
  483. }
  484.  
  485. function GetR3NUA_DiameterChannel() {
  486.   return R3Get(this.r3obj, R3NUA_DiameterChannel, R3TID_STRING, 0); 
  487. }
  488.  
  489. R3NUA_RenderRaytrace = 130518;
  490. function SetR3NUA_RenderRaytrace(value) {
  491.   R3Set(this.r3obj, R3NUA_RenderRaytrace, value, R3TID_BOOLEAN, 0); 
  492. }
  493.  
  494. function GetR3NUA_RenderRaytrace() {
  495.   return R3Get(this.r3obj, R3NUA_RenderRaytrace, R3TID_BOOLEAN, 0); 
  496. }
  497.  
  498. R3NUA_RenderScanline = 130519;
  499. function SetR3NUA_RenderScanline(value) {
  500.   R3Set(this.r3obj, R3NUA_RenderScanline, value, R3TID_BOOLEAN, 0); 
  501. }
  502.  
  503. function GetR3NUA_RenderScanline() {
  504.   return R3Get(this.r3obj, R3NUA_RenderScanline, R3TID_BOOLEAN, 0); 
  505. }
  506.  
  507. R3NUA_MaxDisplacement = 130520;
  508. function SetR3NUA_MaxDisplacement(value) {
  509.   R3Set(this.r3obj, R3NUA_MaxDisplacement, value, R3TID_FLOAT, 0); 
  510. }
  511.  
  512. function GetR3NUA_MaxDisplacement() {
  513.   return R3Get(this.r3obj, R3NUA_MaxDisplacement, R3TID_FLOAT, 0); 
  514. }
  515.  
  516. R3NUA_RenderPostProc = 130521;
  517. function SetR3NUA_RenderPostProc(value) {
  518.   R3Set(this.r3obj, R3NUA_RenderPostProc, value, R3TID_BOOLEAN, 0); 
  519. }
  520.  
  521. function GetR3NUA_RenderPostProc() {
  522.   return R3Get(this.r3obj, R3NUA_RenderPostProc, R3TID_BOOLEAN, 0); 
  523. }
  524.  
  525. var R3NUHT_CONTROLPOINT = 0;
  526. var R3NUHT_KNOTPOINT = 1;
  527. var R3NUT_MOVE = 0;
  528. var R3NUT_WEIGHT = 1;
  529. var R3NUT_INVERSEKINEMATICS = 2;
  530. var R3NUE_PHANTOM = 0;
  531. var R3NUE_MAXMULTIPLICITY = 1;
  532. var R3NUMAXORDER = 6;
  533.  
  534.  
  535. function r3Nurbs () { 
  536.    this.base = r3God;
  537.    if(arguments.length) {
  538.       this.base(R3CLID_NURBS, arguments);
  539.    }
  540.    // Methods
  541.    this.CONCATENATE=mR3NUM_CONCATENATE;
  542.    this.SHARPEN=mR3NUM_SHARPEN;
  543.    this.BREAK=mR3NUM_BREAK;
  544.    this.INSERTKNOT=mR3NUM_INSERTKNOT;
  545.    this.TOBEZIER=mR3NUM_TOBEZIER;
  546.    this.ELEVATEDEGREE=mR3NUM_ELEVATEDEGREE;
  547.    this.CUTHEAD=mR3NUM_CUTHEAD;
  548.    this.CUTTAIL=mR3NUM_CUTTAIL;
  549.    this.SWAPDIRECTION=mR3NUM_SWAPDIRECTION;
  550.    this.CHANGEWEIGHTS=mR3NUM_CHANGEWEIGHTS;
  551.    this.CHANGEORDER=mR3NUM_CHANGEORDER;
  552.    this.INSERTKNOTARRAY=mR3NUM_INSERTKNOTARRAY;
  553.    this.INTERPOLATE=mR3NUM_INTERPOLATE;
  554.    this.UNIFY=mR3NUCM_UNIFY;
  555.    this.OPEN=mR3NUM_OPEN;
  556.    this.SETSTART=mR3NUM_SETSTART;
  557.    this.PARALLELCURVE=mR3NUM_PARALLELCURVE;
  558.    this.ADDTOSHRINK=mR3NUM_ADDTOSHRINK;
  559.    this.PREPARESHRINK=mR3NUCM_PREPARESHRINK;
  560.    this.SHRINK=mR3NUCM_SHRINK;
  561.    this.FREESHRINK=mR3NUCM_FREESHRINK;
  562.    this.INSERTCTRLPOINT=mR3NUM_INSERTCTRLPOINT;
  563.    this.SETPOINT4=mR3NUM_SETPOINT4;
  564.    this.GETPOINT4=mR3NUM_GETPOINT4;
  565.    this.SETKNOT=mR3NUM_SETKNOT;
  566.    this.GETKNOT=mR3NUM_GETKNOT;
  567.    this.SETPOINTLOCAL=mR3NUM_SETPOINTLOCAL;
  568.    this.GETPOINTLOCAL=mR3NUM_GETPOINTLOCAL;
  569.    this.SHRINKISINSIDE=mR3NUCM_SHRINKISINSIDE;
  570.    this.MEASURELENGTH=mR3NUM_MEASURELENGTH;
  571.    this.DISTRIBUTEEVENLY=mR3NUM_DISTRIBUTEEVENLY;
  572.  
  573.    // Attributes
  574.    this.GetCount=GetR3NUA_Count;
  575.    this.SetCount=SetR3NUA_Count;
  576.    this.GetOrder=GetR3NUA_Order;
  577.    this.SetOrder=SetR3NUA_Order;
  578.    this.GetKnots=GetR3NUA_Knots;
  579.    this.SetKnots=SetR3NUA_Knots;
  580.    this.GetPoints=GetR3NUA_Points;
  581.    this.SetPoints=SetR3NUA_Points;
  582.    this.GetKnotCount=GetR3NUA_KnotCount;
  583.    this.GetPoints3=GetR3NUA_Points3;
  584.    this.SetPoints3=SetR3NUA_Points3;
  585.    this.GetClosed=GetR3NUA_Closed;
  586.    this.SetClosed=SetR3NUA_Closed;
  587.    this.GetInParentsParamSpace=GetR3NUA_InParentsParamSpace;
  588.    this.SetInParentsParamSpace=SetR3NUA_InParentsParamSpace;
  589.    this.GetDefaultTool=GetR3NUA_DefaultTool;
  590.    this.SetDefaultTool=SetR3NUA_DefaultTool;
  591.    this.GetParametrization=GetR3NUA_Parametrization;
  592.    this.SetParametrization=SetR3NUA_Parametrization;
  593.    this.GetDiameter1=GetR3NUA_Diameter1;
  594.    this.SetDiameter1=SetR3NUA_Diameter1;
  595.    this.GetDiameter2=GetR3NUA_Diameter2;
  596.    this.SetDiameter2=SetR3NUA_Diameter2;
  597.    this.GetEnds=GetR3NUA_Ends;
  598.    this.SetEnds=SetR3NUA_Ends;
  599.    this.GetScanLineQuality=GetR3NUA_ScanLineQuality;
  600.    this.SetScanLineQuality=SetR3NUA_ScanLineQuality;
  601.    this.GetMin=GetR3NUA_Min;
  602.    this.SetMin=SetR3NUA_Min;
  603.    this.GetMax=GetR3NUA_Max;
  604.    this.SetMax=SetR3NUA_Max;
  605.    this.GetDiameterChannel=GetR3NUA_DiameterChannel;
  606.    this.SetDiameterChannel=SetR3NUA_DiameterChannel;
  607.    this.GetRenderRaytrace=GetR3NUA_RenderRaytrace;
  608.    this.SetRenderRaytrace=SetR3NUA_RenderRaytrace;
  609.    this.GetRenderScanline=GetR3NUA_RenderScanline;
  610.    this.SetRenderScanline=SetR3NUA_RenderScanline;
  611.    this.GetMaxDisplacement=GetR3NUA_MaxDisplacement;
  612.    this.SetMaxDisplacement=SetR3NUA_MaxDisplacement;
  613.    this.GetRenderPostProc=GetR3NUA_RenderPostProc;
  614.    this.SetRenderPostProc=SetR3NUA_RenderPostProc;
  615. }
  616.  
  617. r3Nurbs.prototype=new r3Primitive;
  618. // r3nurbs.h_H